﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SanFranciscoModel.Dias;
using SanFranciscoModel.Horarios;
using SanFranciscoModel.Docente;
using SanFranciscoModel.Materia;

namespace SanFrancisco
{
    

    public partial class CalendarioDocente : Form
    {
        public int _idCurso;
        string _tipoHorario = "m";

        public CalendarioDocente(int idCurso)
        {
            _idCurso = idCurso;
            InitializeComponent();
        }

        private void CalendarioCurso_Load(object sender, EventArgs e)
        {
            CargarDias();
            CargarHorarios();
        }

        private void CargarDias()
        {
            DiasManager DiasManager = new DiasManager();
            List<Dia> DiasList = DiasManager.GetAllDias();
            
        }

        private void CargarHorarios()
        {
            HorarioManager HorarioManager = new HorarioManager();
            List<Horario> ListHorario = HorarioManager.GetAllHorarios();




            foreach (Horario h in ListHorario)
            {
                if (_tipoHorario.Equals("m"))
                {
                    if (h.IdHora == 1)
                        d1.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 2)
                        d2.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 3)
                        d3.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 4)
                        d4.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 5)
                        d5.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 6)
                        d6.Text = ConvertirHora(h.Inicio.ToString());
                }
                else
                {
                    if (h.IdHora == 7)
                        d1.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 8)
                        d2.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 9)
                        d3.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 10)
                        d4.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 11)
                        d5.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 12)
                        d6.Text = ConvertirHora(h.Inicio.ToString());
                }
            }


            //armo todos los label y los distribuyo segun dia y horario de ListDocenteHorario

            DocenteManager DocenteManager = new DocenteManager();
            List<HorarioDocente> ListHorarioDocente = DocenteManager.getHorarioDocenteByIdCurso(_idCurso);
            MateriaManager MateriaManager = new MateriaManager();
            

            foreach(HorarioDocente hd in ListHorarioDocente)
            {
                LinkLabel MyLabel = new System.Windows.Forms.LinkLabel();
                MyLabel.Location = new System.Drawing.Point(114 + ((hd.IdDia -1) * 100), 149 +((hd.IdHora -1) * 48));
                MyLabel.Name = hd.IdMateria.ToString();
                MyLabel.Size = new System.Drawing.Size(88, 21);
                MyLabel.TabIndex = 0;
                MyLabel.Text = MateriaManager.getMateriasByIdMateria(hd.IdMateria).Materia1;
                MyLabel.ImageKey = hd.IdDocente.ToString();
                Controls.Add(MyLabel);

                // Adding the Click event.
                MyLabel.Click += new EventHandler(MyLabel_Click);
            }
        }

        private void MyLabel_Click(object sender, System.EventArgs e)
        {
            LinkLabel a = new LinkLabel();
            a = (LinkLabel)sender;

            DocenteManager dc = new DocenteManager();
            Docente docente = dc.getDocentebyDNI(int.Parse(a.ImageKey));
            MessageBox.Show("Profesor: " + docente.Nombre + " " + docente.Apellido);
            
        }

        private void cmbTurno_SelectedIndexChanged(object sender, EventArgs e)
        {
            
            CargarHorarios();
        }

        public string ConvertirHora(string h)
        {
            string hora = string.Empty;

            if (h.Count() == 3)
            {
                int flag = 0;
                hora += "0";
                foreach(char c in h)
                {
                    if (flag==1)
                    {
                        hora += ":";
                    }
                    hora+=c;
                    flag++;
                }
            }
            else
            {
                if (h.Count() == 4)
                {
                    int flag = 0;
                    foreach (char c in h)
                    {
                        if (flag == 2)
                        {
                            hora += ":";
                        }
                        hora += c;
                        flag++;
                    }
                }
            }
            return hora;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
